#ifndef ITREEITEMFACTORY_H
#define ITREEITEMFACTORY_H

#include "treeitem.h"

class ITreeItemFactory
{
	public:
		virtual ~ITreeItemFactory() {}

		//virtual TreeItem* createTreeItem(const QVector<QVariant> &data, TreeItem *parent) const =0;
		virtual TreeItem* createTreeItem(TreeItem * parent) const =0;
};


class SiblingItemFactory : public ITreeItemFactory
{
	public:

		//virtual TreeItem* createTreeItem(const QVector<QVariant> &data, TreeItem *parent) const;
		virtual TreeItem* createTreeItem(TreeItem * parent) const;
};


class LeafItemFactory : public ITreeItemFactory
{
	public:

		//virtual TreeItem* createTreeItem(const QVector<QVariant> &data, TreeItem *parent) const;
		virtual TreeItem* createTreeItem(TreeItem * parent) const;
};

#endif // ITREEITEMFACTORY_H
